/*
 * @lc app=leetcode.cn id=69 lang=java
 *
 * [69] x 的平方根 
 */

// @lc code=start
class Solution {
    public int mySqrt(int x) {
       int left=0;
       int right=x;
       while(left<=right){
           int middle=left+(right-left)/2;
           long powValue=(long)middle*middle;//注意细节这里，不转型的话范围会超，乘法结果就不对了！
           if(powValue==x){
                return middle;
           }else if(powValue<x){
               left=middle+1;
           }else{
               right=middle-1;
           }
       }
       //其实还是取middle
       return left-1;
    }
}
// @lc code=end

